<?php
/**
 * @brief Klasa generująca formularz składania oferty w aukcji
 * 
 * Generuje sub-formularz dla każdego towaru oferowanego na aukcji.
 */
class Application_Form_MakeOffer extends Zend_Form
{
    /**
     * @brief Metoda inicjująca
     * 
     * Metoda dodająca pól na:
     * - cenę wiązki towarów
     * - minimalną liczbę wiązek
     * - maksymalną liczbę wiązek
     */
    public function init()
    {
        
        $this->setAction('/offers/edit/id/'.$this->_attribs['offerId'].'/format/json');
        
        $this->addElement('text','offeredPrice',array(
            'required'  => true,
            'validators'=> array('float'),
            'label'     => 'Cena wiązki'
        ));
        
        $this->addElement('text','minVolume',array(
            'required'=>true,
            'validators'=>array('int',array('greaterThan', false, array('min'=>0))),
            'label'=>'Minimalna liczba wiązek',
        ));
        
        $max = $this->addElement('text','maxVolume',array(
            'required'=>true,
            'validators'=>array('int',array('greaterThan', false, array('min'=>0)),),
            'label'=>'Maksymalna liczba wiązek',
        ));
        
        $this->addElement('submit','submit',array(
            'label'=>'Zatwierdź'
        ));
    }

    /**
     * @brief Metoda dodająca sub-formularz dla każdego towaru. 
     * 
     * @param int $id ID towaru
     * @param type $name Nazwa towaru
     * @param type $sharefactor Współczynnik towaru z oferty wyjściowej
     */
    public function addItem($id,$name,$sharefactor){
        $element = new Zend_Form_Element_Text('itemNR'.$id);
        $element->setRequired();
        $element->setValidators(array('int',array('greaterThan', false, array('min'=>-1))));
        if($sharefactor == 1){
            $element->setLabel('Udział towaru '.$name.' w wiązce (sprzedaż)');
            $this->addElement($element);
        } else {
            $element->setLabel('Udział towaru '.$name.' w wiązce (kupno)');
            $this->addElement($element);
        }
        
        
        
    }
    /**
     * @brief Metoda dodająca do formularza przycisk akcpetacyjny
     */
    public function addSubmit(){
        $this->addElement('submit','submit',array(
            'label'=>'Zatwierdź'
        ));
    }

}

